import React from "react";
import proptypes from 'proptypes'



//1.通过构造函数写props 或者使用es7直接写props
class Son extends React.Component{ 
    //设置 prosps的默认值，属性   defaultProps 静态属性 propsTypes


    state = {
        msg:'我是son'
    }
    render(){
        console.log(this.props)
        return <div>
            {this.state.msg} from son
            <br/>
            接收父组件的信息：{this.props.toSon}
            <br></br>
            下面为插槽的位置
            {this.props.children}
            {this.props.slot2}
            {this.props.scopslot(this.state.msg)}
            <br></br>
            <button onClick={this.changemsg.bind(this)}> 修改父组件的值</button>
        </div>
    }
    changemsg = ()=>{
        this.props.changedata("子组件修改父组件的值")
    }

}
//类型验证
// proptyps 库   方便验证
Son.propTypes = {
    toSon:function(props){
        //做类型的警告
        if(typeof props.toSon != "string"){
            throw new Error("必须是字符串")
        }
    },
    msg:proptypes.string
}
//默认值
Son.defaultProps = {
    toSon:"我是默认值呀"
}
export default Son